// pages/tabs/cart/cart.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
    cartItems: [], // 购物车商品列表
    selectedItems: [], // 已选择的商品ID列表
    isAllSelected: false, // 是否全选
    totalPrice: '0.00', // 总价格
    isEditing: false, // 是否处于编辑状态
    swipeActions: [
      {
        text: '删除',
        className: 'swipe-action',
        style: 'background-color: #ff4444; color: white;'
      }
    ]
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.loadCartData();
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.loadCartData();
  },

  /**
   * 加载购物车数据
   */
  loadCartData() {
    // 模拟购物车数据，实际项目中应该从后端API获取
    const mockCartItems = [
      {
        id: '1',
        name: '优质大米 东北五常大米 5kg装',
        spec: '规格：5kg/袋',
        supplier: '东北农场直供',
        image: '/assets/images/rice.svg',
        price: '89.90',
        originalPrice: '99.90',
        quantity: 2,
        stock: 100,
        selected: false
      },
      {
        id: '2',
        name: '新鲜蔬菜组合装 有机绿色蔬菜',
        spec: '规格：混合装',
        supplier: '绿色农庄',
        image: '/assets/images/vegetables.svg',
        price: '45.80',
        originalPrice: null,
        quantity: 1,
        stock: 50,
        selected: false
      },
      {
        id: '3',
        name: '精选水果礼盒 季节时令水果',
        spec: '规格：2kg装',
        supplier: '果园直销',
        image: '/assets/images/fruits.svg',
        price: '128.00',
        originalPrice: '158.00',
        quantity: 1,
        stock: 30,
        selected: false
      }
    ];

    this.setData({
      cartItems: mockCartItems
    });
    
    this.calculateTotal();
  },

  /**
   * 编辑按钮点击
   */
  onEditTap() {
    this.setData({
      isEditing: !this.data.isEditing
    });
  },

  /**
   * 单个商品选择
   */
  onItemSelect(e) {
    const itemId = e.currentTarget.dataset.id;
    const cartItems = this.data.cartItems.map(item => {
      if (item.id === itemId) {
        item.selected = !item.selected;
      }
      return item;
    });

    this.setData({
      cartItems
    });

    this.updateSelectedItems();
  },

  /**
   * 全选/取消全选
   */
  onSelectAll(e) {
    const isAllSelected = e.detail.checked;
    const cartItems = this.data.cartItems.map(item => {
      item.selected = isAllSelected;
      return item;
    });

    this.setData({
      cartItems,
      isAllSelected
    });

    this.updateSelectedItems();
  },

  /**
   * 更新选中商品列表
   */
  updateSelectedItems() {
    const selectedItems = this.data.cartItems
      .filter(item => item.selected)
      .map(item => item.id);
    
    const isAllSelected = selectedItems.length === this.data.cartItems.length && this.data.cartItems.length > 0;

    this.setData({
      selectedItems,
      isAllSelected
    });

    this.calculateTotal();
  },

  /**
   * 数量变化
   */
  onQuantityChange(e) {
    const itemId = e.currentTarget.dataset.id;
    const newQuantity = e.detail.value;
    
    const cartItems = this.data.cartItems.map(item => {
      if (item.id === itemId) {
        item.quantity = newQuantity;
      }
      return item;
    });

    this.setData({
      cartItems
    });

    this.calculateTotal();
    
    // 这里可以调用API更新后端数据
    this.updateCartItemQuantity(itemId, newQuantity);
  },

  /**
   * 滑动操作
   */
  onSwipeAction(e) {
    const itemId = e.currentTarget.dataset.id;
    const action = e.detail;
    
    if (action.index === 0) { // 删除操作
      this.deleteCartItem(itemId);
    }
  },

  /**
   * 删除购物车商品
   */
  deleteCartItem(itemId) {
    wx.showModal({
      title: '确认删除',
      content: '确定要删除这个商品吗？',
      success: (res) => {
        if (res.confirm) {
          const cartItems = this.data.cartItems.filter(item => item.id !== itemId);
          this.setData({
            cartItems
          });
          
          this.updateSelectedItems();
          
          // 调用API删除后端数据
          this.removeCartItemFromServer(itemId);
          
          wx.showToast({
            title: '删除成功',
            icon: 'success'
          });
        }
      }
    });
  },

  /**
   * 计算总价
   */
  calculateTotal() {
    let total = 0;
    this.data.cartItems.forEach(item => {
      if (item.selected) {
        total += parseFloat(item.price) * item.quantity;
      }
    });
    
    this.setData({
      totalPrice: total.toFixed(2)
    });
  },

  /**
   * 去结算
   */
  onCheckout() {
    const selectedItems = this.data.cartItems.filter(item => item.selected);
    
    if (selectedItems.length === 0) {
      wx.showToast({
        title: '请选择要结算的商品',
        icon: 'none'
      });
      return;
    }

    // 跳转到结算页面
    wx.navigateTo({
      url: '/pages/checkout/checkout?items=' + encodeURIComponent(JSON.stringify(selectedItems))
    });
  },

  /**
   * 去逛逛
   */
  onGoShopping() {
    wx.switchTab({
      url: '/pages/tabs/home/home'
    });
  },

  /**
   * 更新购物车商品数量（调用后端API）
   */
  updateCartItemQuantity(itemId, quantity) {
    // 实际项目中调用后端API
    console.log('更新商品数量:', itemId, quantity);
  },

  /**
   * 从服务器删除购物车商品
   */
  removeCartItemFromServer(itemId) {
    // 实际项目中调用后端API
    console.log('删除商品:', itemId);
  },

  /**
   * 下拉刷新
   */
  onPullDownRefresh() {
    this.loadCartData();
    wx.stopPullDownRefresh();
  },

  /**
   * 页面分享
   */
  onShareAppMessage() {
    return {
      title: '我的购物车',
      path: '/pages/tabs/cart/cart'
    };
  }
});